home *** CD-ROM | disk | FTP | other *** search
-
- ///¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯ <
- ///
- ///ª¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ Object: XpkWin ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥ <
- ///
- ///¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´ <
- ///
- /* ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
- ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥ XpkWinArrow() ª¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
- ¢ ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´ ¢
- ¢ Go to next "step". ¢
- ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´
- */
- ULONG XpkWinArrow (struct IClass *cl, Object *obj, Msg msg)
- {
- ULONG x;
- struct XWData *data = INST_DATA(cl, obj);
-
- if ((x = XM->xm_Upto) < 100)
- x++;
- set (data->XpkStep, MUIA_Numeric_Value, x);
- return (0L);
- }
- /* ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
- ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥ XpkWinStep() ª¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
- ¢ ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´ ¢
- ¢ Manual select of "step". ¢
- ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´
- */
- ULONG XpkWinStep (struct IClass *cl, Object *obj, Msg msg)
- {
- STRPTR str;
- struct XWData *data = INST_DATA(cl, obj);
-
- DoMethod (data->XpkList, MUIM_List_GetEntry, MUIV_List_GetEntry_Active, &str);
- if (GetXpkMode (str, xget (data->XpkStep, MUIA_Numeric_Value)))
- {
- RDF (data->pspeed, GETMES(XPK_SPEED_FORMAT), XM->xm_PackSpeed);
- RDF (data->upspeed, GETMES(XPK_SPEED_FORMAT), XM->xm_UnpackSpeed);
- RDF (data->ratio, GETMES(XPK_RATIO_FORMAT), XM->xm_Ratio/10, XM->xm_Ratio%10);
- set (data->XpkPSpeed, MUIA_Text_Contents, data->pspeed);
- set (data->XpkUPSpeed, MUIA_Text_Contents, data->upspeed);
- set (data->XpkRatio, MUIA_Text_Contents, data->ratio);
- set (data->XpkComment, MUIA_Text_Contents, XM->xm_Description);
- }
- else
- {
- set (data->XpkPSpeed, MUIA_Text_Contents, empty);
- set (data->XpkUPSpeed, MUIA_Text_Contents, empty);
- set (data->XpkRatio, MUIA_Text_Contents, empty);
- set (data->XpkComment, MUIA_Text_Contents, empty);
- }
- return (0L);
- }
- /* ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
- ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥ XpkWinListSelect() ª¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
- ¢ ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´ ¢
- ¢ Select packer in the list. ¢
- ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´
- */
- ULONG XpkWinListSelect (struct IClass *cl, Object *obj, Msg msg)
- {
- STRPTR str;
- ULONG e = ENCRYPT_ABSENT;
- struct XWData *data = INST_DATA(cl, obj);
-
- DoMethod (data->XpkList, MUIM_List_GetEntry, MUIV_List_GetEntry_Active, &str);
- if (GetXpkInfo (str))
- {
- set (data->XpkFName, MUIA_Floattext_Text, XI->xpi_LongName);
- set (data->XpkDesc, MUIA_Floattext_Text, XI->xpi_Description);
- if (XI->xpi_Flags & XPKIF_ENCRYPTION)
- e = ENCRYPT_PRESENT;
- if (XI->xpi_Flags & XPKIF_NEEDPASSWD)
- e = ENCRYPT_PASSWORD;
- set (data->XpkEncrypt, MUIA_Text_Contents, GETMES(e));
- set (data->XpkStep, MUIA_Numeric_Value, XI->xpi_DefMode);
- DoMethod (obj, MUIM_XW_Step);
- set (data->XpkPassword, MUIA_Disabled, e == ENCRYPT_ABSENT);
- }
- else
- {
- set (data->XpkFName, MUIA_Floattext_Text, NULL);
- set (data->XpkDesc, MUIA_Floattext_Text, NULL);
- set (data->XpkEncrypt, MUIA_Text_Contents, empty);
- set (data->XpkStep, MUIA_Numeric_Value, 0L);
- set (data->XpkPassword, MUIA_Disabled, TRUE);
- }
- return (0L);
- }
- /* ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
- ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥ XpkWinOpen() ª¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
- ¢ ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´ ¢
- ¢ Open XPK window. ¢
- ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´
- */
- ULONG XpkWinOpen (struct IClass *cl, Object *obj, Tie *tie)
- {
- LONG x, y = -1;
- struct XWData *data = INST_DATA(cl, obj);
-
- DoMethod (data->XpkList, MUIM_List_Clear);
- if (GetXpkList())
- {
- for (x = 0L; x < XL->xpl_NumPackers; x++)
- {
- DoMethod (data->XpkList, MUIM_List_InsertSingle, XL->xpl_Packer[x], MUIV_List_Insert_Bottom);
- if (! stricmp (XL->xpl_Packer[x], (STRPTR)(tie->ID1)))
- y = x;
- }
- if (y >= 0)
- {
- set (data->XpkList, MUIA_List_Active, y);
- set (data->XpkStep, MUIA_Numeric_Value, tie->ID2);
- set (data->XpkPassword, MUIA_String_Contents, tie->ID3);
- }
- else
- {
- set (data->XpkStep, MUIA_Numeric_Value, 0L);
- set (data->XpkPassword, MUIA_String_Contents, empty);
- set (data->XpkPassword, MUIA_Disabled, TRUE);
- }
- set (obj, MUIA_Window_Open, TRUE);
- set (obj, MUIA_Window_ActiveObject, data->XpkLView);
- }
- else
- DoMethod (MainWin, MUIM_MW_XpkClose, FALSE);
- return (0L);
- }
-
- /* ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
- ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥ XpkWinClose() ª¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
- ¢ ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´ ¢
- ¢ Close XPK window. ¢
- ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´
- */
- ULONG XpkWinClose (struct IClass *cl, Object *obj, Tie *tie)
- {
- STRPTR str;
- struct XWData *data = INST_DATA(cl, obj);
-
- set (obj, MUIA_Window_Open, FALSE);
- if (tie->ID1)
- {
- DoMethod (data->XpkList, MUIM_List_GetEntry, MUIV_List_GetEntry_Active, &str);
- DoMethod (MainWin, MUIM_MW_XpkClose, str, xget (data->XpkStep, MUIA_Numeric_Value), getstr (data->XpkPassword));
- }
- else
- DoMethod (MainWin, MUIM_MW_XpkClose, FALSE);
- return (0L);
- }
-
- /* ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
- ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥ XpkWinNew() ª¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
- ¢ ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´ ¢
- ¢ XPK window initialization due OM_NEW. ¢
- ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´
- */
- ULONG XpkWinNew (struct IClass *cl, Object *obj, struct opSet *msg)
- {
- struct XWData *data;
- Object *XpkLView, *XpkList;
- Object *XpkFName, *XpkDesc, *XpkEncrypt, *XpkPassword;
- Object *XpkStep, *XpkArrow, *XpkPSpeed, *XpkUPSpeed, *XpkRatio, *XpkComment;
- Object *XpkUseBut, *XpkCancelBut;
-
- obj = (Object *)DoSuperNew (cl,obj,
- MUIA_Window_Title, GETMES(XPKWIN_TITLE),
- MUIA_Window_ID, MAKE_ID('X','P','K','W'),
- MUIA_Window_ScreenTitle, GETMES(PROG_COPYRIGHT),
- WindowContents, VGroup,
- Child, HGroup,
- Child, XpkLView = ListviewObject,
- MUIA_Weight, 10,
- GroupFrameT(GETMES(XPKLIST_TITLE)),
- MUIA_Listview_List, XpkList = ListObject,
- InputListFrame,
- MUIA_List_AutoVisible, TRUE,
- End,
- End,
- Child, VGroup,
- Child, VGroup,
- GroupFrameT(GETMES(XPKINFO_TITLE)),
- Child, CLabel1(GETMES(XPK_FULLNAME_STR)),
- Child, XpkFName = FloattextObject, TextFrame,
- End,
- Child, CLabel1(GETMES(XPK_DESC_STR)),
- Child, XpkDesc = FloattextObject, TextFrame,
- End,
- Child, ColGroup(2),
- Child, Label1(GETMES(ENCRYPT_STR)),
- Child, XpkEncrypt = TextObject, TextFrame,
- End,
- Child, Label1(GETMES(PACKSPEED_STR)),
- Child, XpkPSpeed = TextObject, TextFrame,
- End,
- Child, Label1(GETMES(UNPACKSPEED_STR)),
- Child, XpkUPSpeed = TextObject, TextFrame,
- End,
- Child, Label1(GETMES(RATIO_STR)),
- Child, XpkRatio = TextObject, TextFrame,
- End,
- Child, Label1(GETMES(COMMENT_STR)),
- Child, XpkComment = TextObject, TextFrame,
- End,
- End,
- End,
- Child, VSpace(0),
- Child, ColGroup(2),
- GroupFrameT(GETMES(XPKSET_TITLE)),
- Child, KeyLabel1(GETMES(STEP_STR), GETKEY(STEP_KEY)),
- Child, HGroup,
- Child, XpkStep = KeySlider(0, 100, 0, GETKEY(STEP_KEY)),
- Child, XpkArrow = PopButton (MUII_ArrowRight),
- End,
- Child, KeyLabel1(GETMES(PASSWORD_STR), GETKEY(PASSWORD_KEY)),
- Child, XpkPassword = StringObject,
- StringFrame,
- MUIA_ControlChar, GETKEY(PASSWORD_KEY),
- MUIA_String_MaxLen, 32,
- MUIA_String_Secret, TRUE,
- End,
- End,
- End,
- End,
- Child, HGroup, MUIA_Group_SameSize, TRUE,
- Child, XpkUseBut = KeyButton (GETMES(USE_BUT), GETKEY(USE_KEY)),
- Child, XpkCancelBut = KeyButton (GETMES(CANCEL_BUT), GETKEY(CANCEL_KEY)),
- End,
- End,
- TAG_DONE);
-
-
- if (! obj)
- {
- MakeRequest (REQ_TITLE_ERROR, WINDOW_PROBLEM, EXIT_BUT, NULL);
- return (GAME_OVER);
- }
-
- // filling XPK window data structure
- data = INST_DATA(cl, obj);
- data->XpkLView = XpkLView; data->XpkList = XpkList;
- data->XpkFName = XpkFName; data->XpkDesc = XpkDesc;
- data->XpkEncrypt = XpkEncrypt; data->XpkStep = XpkStep;
- data->XpkArrow = XpkArrow; data->XpkPSpeed = XpkPSpeed;
- data->XpkUPSpeed = XpkUPSpeed; data->XpkRatio = XpkRatio;
- data->XpkComment = XpkComment; data->XpkPassword = XpkPassword;
-
- // Activate keyboard control
- DoMethod (obj, MUIM_MultiSet, MUIA_CycleChain, TRUE, XpkLView, XpkStep, XpkArrow, XpkPassword, XpkUseBut, XpkCancelBut, NULL);
-
- // Set methods for interface changes
-
- // close with window gadget
- DoMethod (obj, MUIM_Notify, MUIA_Window_CloseRequest, TRUE,
- obj, 2,
- MUIM_XW_Close, FALSE);
- // close with "Cancel" button
- DoMethod (XpkCancelBut, MUIM_Notify, MUIA_Pressed, FALSE,
- obj, 2,
- MUIM_XW_Close, FALSE);
- // close with "Use" button
- DoMethod (XpkUseBut, MUIM_Notify, MUIA_Pressed, FALSE,
- obj, 2,
- MUIM_XW_Close, TRUE);
- // select node in the list
- DoMethod (XpkList, MUIM_Notify, MUIA_List_Active,
- MUIV_EveryTime,
- obj, 1,
- MUIM_XW_ListSelect);
- // control "step" of packer
- DoMethod (XpkStep, MUIM_Notify, MUIA_Numeric_Value,
- MUIV_EveryTime,
- obj, 1,
- MUIM_XW_Step);
- DoMethod (XpkArrow, MUIM_Notify, MUIA_Pressed, FALSE,
- obj, 1,
- MUIM_XW_Arrow);
- return ((ULONG)obj);
- }
-
- /* ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
- ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥ XpkWinDispatcher() ª¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
- ¢ ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´ ¢
- ¢ Dispatcher of object XpkWin. ¢
- ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´
- */
- ULONG __saveds __asm XpkWinDispatcher(REG(a0) struct IClass *cl, REG(a2) Object *obj, REG(a1) Msg msg)
- {
- switch (msg->MethodID)
- {
- case OM_NEW : return (XpkWinNew (cl, obj, (APTR)msg));
- case MUIM_XW_Open : return (XpkWinOpen (cl, obj, (APTR)msg));
- case MUIM_XW_Close : return (XpkWinClose (cl, obj, (APTR)msg));
- case MUIM_XW_ListSelect : return (XpkWinListSelect (cl, obj, (APTR)msg));
- case MUIM_XW_Step : return (XpkWinStep (cl, obj, (APTR)msg));
- case MUIM_XW_Arrow : return (XpkWinArrow (cl, obj, (APTR)msg));
- }
- return (DoSuperMethodA (cl, obj, msg));
- }
-